<h1>Backward compatibility</h1>
<p>JUnit 4 requires due to Annotation usage JDK 1.5. For many
environments, this is a strong limitation, as JDK 1.5 is not allowed to
be used in production systems.</p>
<p>RetroWeaver (<a href="http://retroweaver.sourceforge.net">http://retroweaver.sourceforge.net</a>)
is a JDK 1.5 backward compatibility tool to allow JDK 1.5 based
development, and JDK 1.4 (down to JDK 1.1) based deployment. For more
details see RetroWeaver <a href="http://retroweaver.sourceforge.net">website</a>.</p>

<h3>How to use JUnit 4.x and JDK 1.4 (or previous versions)</h3>

<p>There is a sample included, using an ANT build file to compile and weave code, and 
run JUnit 4.x based tests using JDK 1.4.</p>
<p>See <a href="jdk14/build.xml.txt">jdk14/sample/build.xml</a>.</p>

<h3>Notes to previous RetroWeaver versions:</h3>
<p>There is a test included, based on latest
RetroWeaver version 2.0Beta4. </p>
<p style="color:#FF0000">The complete JUnit test suite is working now fine.</p>

<ul>
	<li>RetroWeaver 1.2.2 does not work, as ANT task does not create
	output directories when weaving classes. See <code><a
		href="jdk14/retroweaver-1.2.2.log">retroweaver-1.2.2.log</a></code></li>
	<li>RetroWeaver 1.2.5 does not work, as Annotation access via
	reflection is not yet supported. See <code><a
		href="jdk14/retroweaver-1.2.5.log">retroweaver-1.2.5.log</a></code></li>
	<li>RetroWeaver until 2.0Beta3 does not work, as runtime libraries are not 
	complete. See <code><a
		href="jdk14/retroweaver-2.0Beta2.log">retroweaver-2.0Beta2.log</a></code></li>
</ul>
</p>

<p>
These bugs have been posted to RetroWeaver, and solved now by the cool guys from RetroWeaver:
</p>
<ul>
	<li><a
		href="http://sourceforge.net/tracker/?func=detail&atid=637380&aid=1562317&group_id=104240"><code>NPE
	in AIB.getMethodAnnotation(AIB.java:175)</code></a></li>
	<li><a
		href="http://sourceforge.net/tracker/index.php?func=detail&aid=1627206&group_id=104240&atid=637380"><code>NoSuchMethodError:
	String.format(String, Object[]):String</code></a></li></ul>
	</p>

	<p>Short tutorial how to make these tests for your own:
	<ol>
		<li>Download latest version of JUnit (e.g. <code>junit42.zip</code>).
		Copy into <code>.../src-jdk14/3rdParty</code></li>
		<li>Download latest version of RetroWeaver (e.g. <code>retroweaver-2.0Beta4.zip</code>).
		Copy into <code>.../src-jdk14/3rdParty</code></li>
		<li>If using other versions, set your specific version info into
		<code>.../src-jdk14/build.local.properties</code></li>
		<li>Set your paths to your JDK 1.4 and 1.5 in <code>.../src-jdk14/build.local.properties</code></li>
		<li>call <code>.../src-jdk14/build.xml</code> with target test</li>
		<li>Check build output for correct execution</li>
	</ol>
	</p>